//
//  main.m
//  OC01_类和对象
//
//  Created by 曹曹 on 16/2/24.
//  Copyright © 2016年 Apon. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h" /** 导入头文件. */
int main(int argc, const char * argv[]) {

#pragma mark - 知识点1:类和对象
    /**
     * 类:由实例变量(特征)和方法(行为)组成.
     * 面向对象编程三步:定义类,创建对象,使用对象.
     */
    
#pragma mark - 1.1类的定义
    /** 详见Person.h和Person.m类文件. */

#pragma mark - 1.2创建对象
#if 0
    // 1. 开辟空间
    Person *person1 = [Person alloc];
    
    // 2. 初始化
    person1 = [person1 init];
    
    // alloc之后必须初始化, 所以通常alloc和init方法连写.
    Person *person2 = [[Person alloc] init];
    // 初始化方法就是初始化的同时给实例变量赋值.
#endif
    
#pragma mark - 知识点2:使用对象
    
#if 0
    /** 使用对象, 就是调用方法(功能). */
    
    //创建对象
    Person *person1 = [[Person alloc] init];//因为在堆区开辟空间,所以需要使用指针
    
    //使用对象(调用方法)
    [person1 info];
    [person1 sayhi];
#endif
    
#pragma mark - 知识点3:实例变量的操作
 
#if 0
    //创建对象.
    Person *person1 = [[Person alloc] init];
    
    //实例变量的赋值.
    person1->_name = @"张三";
    person1->_age = 18;
    
    //实例变量的取值(输出)
    NSLog(@"name:%@", person1->_name);
    
    //调用对象方法
    [person1 info];
#endif
    
    return 0;
}
